home *** CD-ROM | disk | FTP | other *** search
/ Graphics Plus / Graphics Plus.iso / general / fractal / kaos.lha / modellib / dissstandmap_def.c < prev    next >
Encoding:
C/C++ Source or Header  |  1990-01-16  |  1.3 KB  |  73 lines

  1. int dissstandmap_init()
  2. {
  3.     title_label = "(Dissipative) Standard Map";
  4.     mapping_on = 1;
  5.     inverse_on = 1;
  6.     fderiv_on = 0;
  7.     enable_polar = 0;
  8.     enable_period = 1;
  9.     var_dim = 2;
  10.     param_dim = 3;
  11.     func_dim = 2;
  12.  
  13.     (void) malloc_init();
  14.  
  15.     period_len[0] = 1;
  16.     period_len[1] = 0;
  17.     
  18.     var_label[0] = "x";
  19.     var_label[1] = "r";
  20.     param_label[0] = "w";
  21.     param_label[1] = "k";
  22.     param_label[2] = "b";
  23.     func_label[0] = "Rhox";
  24.     func_label[1] = "Undefined";
  25.  
  26.     param[0] = 0;
  27.     param[1] = 0.97;
  28.     param[2] = 1;
  29.     var_i[0] = .5;
  30.     var_i[1] = .5;
  31.  
  32.     param_min[0]= 0; param_max[0]= 1;
  33.     param_min[1]= 0; param_max[1]= 1;
  34.     param_min[2]= 0; param_max[2]= 1;
  35.     var_min[0]= 0; var_max[0]= 1;
  36.     var_min[1]= 0; var_max[1]= 1;
  37.     func_min[0]= 0; func_max[0]= 1;
  38.  
  39.     f_p = dissstandmap_f;
  40.     func_p = dissstandmap_func;
  41. }
  42. /* Diss. Standard Map */
  43. int dissstandmap_f(f,index,x,p,t,dim)
  44. int index,dim;
  45. double f[],x[],p[],t;
  46. {
  47.     double v0sq,v1sq,v2sq,v3sq;
  48.  
  49.     /* forward map */
  50.     if(index ==1) {
  51.         f[1] = p[2] * x[1] - p[1] / twopi * sin(twopi * x[0]);
  52.         f[0] = x[0] + p[0] + f[1];
  53.     }
  54.     /* backward map */
  55.     else if(index ==0) {
  56.         f[0] = x[0] - p[0] -x[1];
  57.         f[1] = (x[1] + p[1]/twopi * sin(twopi * f[0]))/p[2];
  58.     }
  59.     
  60. }
  61. int dissstandmap_func(f,x,p,t,dim)
  62. double f[],x[],p[],t;
  63. int dim;
  64. {
  65.     int i;
  66.     extern int forward_toggle;
  67.     extern double *v;
  68.     extern int (*f_p)();
  69.     
  70.     (int) f_p(v,forward_toggle,x,p,t,dim);
  71.     f[0] = v[0]-x[0];
  72. }
  73.